
//682.棒球比赛
#include<ranges>
class Solution {
public:
    int calPoints(vector<string>& operations) {
        //记录得分的操作类似于栈
        //"+"取出两个栈顶元素将其相加放入到栈中
        //"D"取出栈顶元素将其翻倍
        //"C"间栈顶元素删除

        vector<int> st;   //使用数组来模拟栈
        for(auto& s:operations)
        {
            if(s=="+")
            {
                int n=st.size();
                st.push_back(st[n-1]+st[n-2]);
            }
            else if(s=="D") st.push_back(st.back()*2);
            else if(s=="C") st.pop_back();
            else st.push_back(stoi(s));
        }
        int ret=0;
        for(auto e:st) ret+=e;
        return ret;
    }
};